package com.fuyun.rpc.common.domain;

import lombok.Data;

/**
 * @author: zrq1351
 * @date: 2025/2/15
 */
@Data
public class ServiceMetaInfo {

	/**
	 * 服务名称
	 */
	private String serviceName;
	/**
	 * 服务版本号
	 */
	private String serviceVersion;
	/**
	 * 服务域名
	 */
	private String serviceHost;
	/**
	 * 服务端口号
	 */
	private Integer servicePort;

	/**
	 * 服务分组
	 */
	private String serviceGroup = "default";

	/**
	 * 获取服务键名
	 *
	 * @return 服务键名
	 */
	public String getServiceKey() {
		// 扩展服务分组
		return String.format("%s:%s/%s", serviceName, serviceVersion, serviceGroup);

	}

	/**
	 * 获取服务注册节点键名
	 *
	 * @return 服务注册节点键名
	 */
	public String getServiceNodeKey() {
		return String.format("%s/%s:%s", getServiceKey(), serviceHost, servicePort);
	}

	/**
	 * 获取完整服务地址
	 *
	 * @return 服务地址
	 */
	public String getServiceAddress() {
		return String.format("%s:%s", serviceHost, servicePort);
	}

}